import request from "@/utils/request";
import qs from 'qs'

/**
 * listData 方法
 * @param params 形参: 实际的值取决于调用方法时传入的是什么, 这里我们期望 params = {...}
 * @returns {*}
 */
export function listData(params) {
  /**
   * axios 中的 get 方法
   *  get:
   *    第一个参数: uri 地址
   *    第二个参数: config 对象
   */
  /*let config = {
    /!*'url': '',
    'type': ''*!/
    params
  }*/
  // TODO 为什么用post 因为使用树形部门存数据会多出来括号 所以用post当然也可以用get 方式
  // return request.post(`/employee/list`, params)
  // TODO return request.post(`/v1/employee/list`, params) 添加了v1后去vue.config.js代理修改成v1

  //若改成一下方式 后端controller 方法中去掉@RequestBody
  return request.get('/employee/list',{
    params,
    paramsSerializer:params =>{
      return qs.stringify(params,{indices:false})
    }
  })
}

/**
 * saveOrUpdate 方法
 * @param params 形参: 实际的值取决于调用方法时传入的是什么, 这里我们期望 params = {...}
 * @returns {*}
 */
export function saveOrUpdate(params) {
  /**
   * axios 的 post 方法
   *  post:
   *    第一个参数: uri 地址
   *    第二个参数: 参数对象
   *      json 类型: {key: value, key2: value}
   *      字符串类型: key=value&key2=value
   *    第三个参数: config 对象
   *  post(uri, {key: value, ...}, {headers: {'xxx': 'xxx'}})
   */
  return request.post(`/employee/saveOrUpdate`, params);
}

export function deleteById(id) {
  return request.post(`/employee/delete`, qs.stringify({id}), {
    headers: {'content-type': 'application/x-www-form-urlencoded'}
  });
}
